%%% Hints to the Doxygen program, which builds the Snow Dots documentation
% @defgroup singletons
% @defgroup superclasses
% @defgroup drawable
% @defgroup playable
% @defgroup queryable
% @defgroup utilities

%
% @mainpage Welcome to Snow Dots
% @section intro Introduction
% @par
% Snow Dots defines nuts and bolts for doing Psychophysics experiments
% in Matlab. It extends the <a
% href="http://tower-of-psych.googlecode.com">Tower of Psych</a>, which
% defines high-level organization for Psychophysics experiments.
% Read on for more explanation of what Snow Dots can do, or jump to one of
% the key parts of these docs:
%   - @ref picture
%   - @ref newtask
%   - <a href="inherits.html">Class Heirarchy</a>
%   - <a href="modules.html">Areas of Interest</a>
%   .
% @section nutsBolts What Nuts and Bolts?
% @par
% Things that Snow Dots tries to solve (and should have paragraps):
%   - graphics, with Psychtoolbox
%   - input, with USB HID, mexHID
%   - data classification, with Queryable, Phenomenon
%   - client-server delegation, UDP/IP, management contract
%   - permanent and dynamic configuration, with machineConfiguration and
%   switchboard
%   - extensibility, with allManagedObject family
% @section naming Objects and Naming Conventions
% @par
% Snow Dots uses object-oriented design (classes and inheritance).  The
% following naming conventions should make it easier to understand the
% class inheritance heirarchy:
%   - Class names use the prefix "dots", and use
%   <a href="http://en.wikipedia.org/wiki/CamelCase">CamelCase</a>.  For
%   example, dotsDrawable.
%   - Method names and function names use lowerCamelCase.  For example,
%   mayDrawNow().
%   - "Singleton" classes, which can only exist one-at-a-time, use the
%   definite article "The" in their names.  For example, dotsTheScreen.
%   - High-level superclasses, which define high-level behaviors, use
%   the adjective "All" in their names.  Their names are also plural.  For
%   example, dotsAllManagedObjects.
%   - Low-level superclasses, which define behaviors for a family of very
%   similar subclasses, use a single-adjective name.  For example,
%   dotsDrawable.
%   - Low-level subclasses append a noun to the name of their superclass.
%   For example, dotsDrawableLines.
%   .
% @par
% A notable exception is the handle class, which is the basis of Matlab's
% object-oriented programming.  All Snow Dots classes inherit form handdle,
% so the handle documentation shows these conventions in action.
% @section origin Origin
% @par
% Snow Dots is a successor to <a
% href="http://dotsx.googlecode.com">dotsx</a>, which
% was written by Josh Gold and Ben Heasly at the University of
% Pennsylvania.  Snow Dots was designed and written by the same.
%